package com.hongyu.manager.media.manager.utils.task;

import com.hongyu.manager.media.manager.controller.app.AppVideoController;
import com.hongyu.manager.media.manager.model.bean.Video;
import com.hongyu.manager.media.manager.service.TxtService;
import com.hongyu.manager.media.manager.service.VideoService;
import com.hongyu.manager.media.manager.service.VideoTypeService;
import com.hongyu.manager.media.manager.service.impl.VideoServiceImpl;
import org.jsoup.helper.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.List;

@Configuration
@EnableScheduling
public class TaskService {
    private static final Logger LOG = LoggerFactory.getLogger(TaskService.class);
    @Autowired
    TxtService txtService;
    @Autowired
    VideoService videoService;
    @Autowired
    VideoTypeService videoTypeService;



//




//    @Scheduled(cron = "0/30 * * * * ?")
    private void SaveFilelist(){
        String  path="H:\\Media\\Python\\File\\txt";
        int time=getCurrentTime();
//        if (time==30000)
            printDirByRecursive(new File(path),1);

    }

    private int getCurrentTime() {
        //首先获取当前的毫秒值
        long currentTimeMillis = System.currentTimeMillis();
        /**
         * 转换为年月日时分秒的形式,得到的currentTime就是转换之后的值了
         * yyyy-MM-dd HH-mm-ss
         * 年-月-日 时-分-秒
         */
        String currentTime = new SimpleDateFormat("HHmmss").format(currentTimeMillis);

        int time=Integer.valueOf(currentTime);
        return time;

    }

//    @Scheduled(cron = "0/30 * * * * ?")
    private void  updateWebSiteTable(){
        int time=getCurrentTime();
//        if (time==20000)
            videoService.updateWebSiteTable();



    }
//    @Scheduled(cron = "0/30 * * * * ?")
    private void  updateVideoTypeTable(){
        int time=getCurrentTime();
//        if (time==10000)
            videoService.updateVideoTypeTable();



    }
//    @Scheduled(cron = "0/30 * * * * ?")
    private void  updateVideoType(){
        Video video=new Video();
        int time=getCurrentTime();
//        if (time==10000)
        videoService.updateVideoType();



    }
    /**
     *  遍历文件夹（递归）
     * @param dir
     * @param level
     */
    public  void printDirByRecursive(File dir,int level) {
        LOG.info(dir.getAbsolutePath());
        //输出层次数
        for (int i = 0; i < level; i++) {
            System.out.print("-");
        }
        //获取这个目录下所有的子文件和子目录的数组。
        File[] files = dir.listFiles();
        //遍历这个数组，取出每个File对象
        if (files != null) {
            for (File f : files) {
                //判断这个File是否是一个文件，是：
                if (f.isFile()) {
                    txtService.saveTxtFileinfor(f);
                    LOG.info(f.getAbsolutePath());
                } else {//否则就是一个目录，继续递归
                    //递归调用
                    LOG.info("目录："+dir.getAbsolutePath());
                    printDirByRecursive(f,level+1);
                }
            }
        }
    }
}
